/* ***********************************************************************
 * Copyright (C) 1992-2014 中国南方航空股份有限公司.
 *
 * Created [2014-5-5 上午10:33:47] by FMS Team
 * ***********************************************************************
 *
 * fms-udp
 * ***********************************************************************
 */
package com.foreveross.law.base.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * com.csair.udp.common.service.ICrudService.java
 * </p>
 * 
 * @author liaocw(mail)
 * @version $Revision$ $Date$
 * @Modified by liaocw(mail) description
 * @purpose 抽象service层基类 提供一些简便方法:基本的CRUD方法
 */
public interface ICrudService<T, ID extends Serializable> extends IBaseService<T> {
	public Class<T> getEntityClass();

	/**
	 * 
	 * get(根据主键获取对象)
	 * 
	 * @param id
	 * @return
	 */
	T get(Serializable id);

	/**
	 * 
	 * save(保存对象)
	 * 
	 * @param entity
	 * @return
	 */
	ID save(T entity);

	/**
	 * 
	 * update(更新对象)
	 * 
	 * @param entity
	 */
	void update(T entity);

	/**
	 * 
	 * delete(根据主键删除对象)
	 * 
	 * @param id
	 */
	void delete(ID id);

	/**
	 * 
	 * findAll(获取所有记录)
	 * 
	 * @return
	 */
	List<T> findAll();

	/**
	 * 
	 * getCount(获取记录总数)
	 * 
	 * @param parameter
	 * @return
	 */
	public long getCount(Map<String, ?> parameter);

	
	/**
	  * findAll(不分页查询)
	  * @param map
	  */
	public List<T> findAll(Map<String, Object> map);

}
